/*
AlliedBridge Content Management System
Copyright (C) 2006 AlliedBridge

This program is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software Foundation;

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.volume4.alliedbridge.model.article;

import java.io.*;
import java.net.*;
import java.sql.*;
import java.sql.Date;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ActivateArticle extends HttpServlet {
    
    public String DRIVER, URL, USER, PASS, app_root, messageSuccess, messageFailed;
    public int article_id;
    public Date article_date;
    public String heading,lead,content,tag,img,img_alt;
    
    public void init() throws ServletException {
    ServletContext context = getServletContext();
	DRIVER = context.getInitParameter("driver");
	URL = context.getInitParameter("mc_dburl");
	USER = context.getInitParameter("mc_dbuser");
	PASS = context.getInitParameter("mc_dbpass");
    }
    
    public void processRequest (HttpServletRequest request, HttpServletResponse response)
				throws ServletException, IOException {
	response.setContentType("text/html");
	PrintWriter out = response.getWriter();
	Connection con = null;
    // These need to be moved to a properties file.
	messageSuccess = "New article successfuly activate.";
	messageFailed = "New article activation failed.";

    try {
        Class.forName(DRIVER);
		con = DriverManager.getConnection(URL,USER,PASS);
                
		String getData = "SELECT * FROM ab_articles_pending " +
                "WHERE article_id= '" + request.getParameter("article_id") + "'";
                
        PreparedStatement stmt = con.prepareStatement(getData);
        ResultSet rs = stmt.executeQuery();
        boolean hasData = false;
                
                while(rs.next()) {
                    hasData = true;
                 
                    article_id = rs.getInt("article_id");
                    heading = rs.getString("heading");
                    lead = rs.getString("lead");
                    content = rs.getString("content");
                    tag = rs.getString("tag");
                    img = rs.getString("img");
                    img_alt = rs.getString("img_alt");
                    article_date = rs.getDate("article_date");
                }
                
                String insertData =
                "INSERT INTO ab_articles " +
                "(heading, lead, content, img, img_alt, article_date)" +
                " VALUES('" + heading + "', " +
                "'" + lead + "', " +
                "'" + content + "', " +
                "'" + img + "', " +
                "'" + heading + "', " +
                "'" + article_date + "')";
              
                int result = stmt.executeUpdate(insertData);
                
                String deleteData =
                "DELETE FROM ab_articles_pending " +
                "WHERE article_id= '" + article_id + "'";
                
                int deleteResult = stmt.executeUpdate(deleteData);
              
                app_root = request.getContextPath();
				response.sendRedirect(app_root + "/application/application_messages/process_result.jsp?message=" + messageSuccess);
        
} catch (SQLException ex) {
	out.println("\nERROR:------ SQLException -----\n");
        while (ex != null) {
            out.println("Message: " + ex.getMessage() + "<br>");
            out.println("SQLState: " + ex.getSQLState() + "<br>");
            out.println("ErrorCode :" + ex.getErrorCode());
            ex = ex.getNextException();
        }
    } catch (Exception e) {
        e.printStackTrace();        
} finally {
    try {	
    if (con != null)
        con.close();
	} catch (SQLException ex) {
            out.println("\nERROR:------ SQLException -----\n");
            out.println("Message: " + ex.getMessage());
            out.println("SQLState: " + ex.getSQLState());
            out.println("ErrorCode :" + ex.getErrorCode());
        }
            }
    }
    
    /** Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /** Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }    
   
}
